import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;

public class HelloKafkaOne {

    private static final String TOPIC_NAME = "16homework";

    public static void main(String[] args) {
        // 创建kafka生产者的配置对象
        Properties properties = new Properties();
        // 给kafka配置对象添加配置信息
        properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.164.15:9092");
        properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");

        // 创建一个新的KafkaProducer实例
        Producer<String, String> producer = new KafkaProducer<>(properties);

        // 创建一个无限循环，用于持续发送数据
        while (true) {
            try {
                // 定义要发送的数据列表
                String[] dataList = {"YSL", "耐克", "帆布鞋", "帆布鞋", "连衣裙", "耐克", "YSL"};

                for (String data : dataList) {
                    // 创建一个新的ProducerRecord，并将数据发送到指定的主题
                    ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, null, data);
                    producer.send(record);
                    System.out.println("开始发送数据：" + data);

                    // 每发送一条数据后，等待2秒
                    Thread.sleep(2000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
                break; // 如果捕获到异常，则退出循环
            }
        }

        // 注意这里不会执行到，因为while(true)是一个无限循环
        // 关闭生产者连接
        producer.close();
    }
}